/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.germinus.telcoblocks.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.germinus.telcoblocks.Anuncios;
import org.germinus.telcoblocks.Centralita_VOIP;
import org.germinus.telcoblocks.ClickToDial;
import org.germinus.telcoblocks.Desvio;
import org.germinus.telcoblocks.Enlace;
import org.germinus.telcoblocks.Evento;
import org.germinus.telcoblocks.Facturacion;
import org.germinus.telcoblocks.Llamadas;
import org.germinus.telcoblocks.MediaServer;
import org.germinus.telcoblocks.Nodo;
import org.germinus.telcoblocks.NodoRED;
import org.germinus.telcoblocks.NodoSERVICIOS;
import org.germinus.telcoblocks.Personalizacion;
import org.germinus.telcoblocks.Servicio;
import org.germinus.telcoblocks.ServicioGen;
import org.germinus.telcoblocks.Servidor;
import org.germinus.telcoblocks.Servidor_APP_SIP;
import org.germinus.telcoblocks.Servidor_VOIP;
import org.germinus.telcoblocks.SoftPhone_VOIP;
import org.germinus.telcoblocks.TelcoblocksFactory;
import org.germinus.telcoblocks.TelcoblocksPackage;
import org.germinus.telcoblocks.Telefono;
import org.germinus.telcoblocks.Telefono_VOIP;
import org.germinus.telcoblocks.Terminal;
import org.germinus.telcoblocks.TipoCentralita;
import org.germinus.telcoblocks.TipoHost;
import org.germinus.telcoblocks.TipoUsuario;
import org.germinus.telcoblocks.Web;
import org.germinus.telcoblocks.YesNo;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class TelcoblocksPackageImpl extends EPackageImpl implements TelcoblocksPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass nodoEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass enlaceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass redEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass nodoREDEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass terminalEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass telefono_VOIPEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass softPhone_VOIPEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass servidorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass servidor_APP_SIPEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass servidor_VOIPEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass centralita_VOIPEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass mediaServerEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass serviciosEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass nodoSERVICIOSEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass eventoEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass imEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass telefonoEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass webEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass servicioEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass servicioGenEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass llamadasEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass clickToDialEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass personalizacionEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass bcEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass facturacionEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass anunciosEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass desvioEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum yesNoEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum tipoCentralitaEEnum = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.germinus.telcoblocks.TelcoblocksPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private TelcoblocksPackageImpl() {
		super(eNS_URI, TelcoblocksFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this
	 * model, and for any others upon which it depends.  Simple
	 * dependencies are satisfied by calling this method on all
	 * dependent packages before doing anything else.  This method drives
	 * initialization for interdependent packages directly, in parallel
	 * with this package, itself.
	 * <p>Of this package and its interdependencies, all packages which
	 * have not yet been registered by their URI values are first created
	 * and registered.  The packages are then initialized in two steps:
	 * meta-model objects for all of the packages are created before any
	 * are initialized, since one package's meta-model objects may refer to
	 * those of another.
	 * <p>Invocation of this method will not affect any packages that have
	 * already been initialized.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static TelcoblocksPackage init() {
		if (isInited) return (TelcoblocksPackage)EPackage.Registry.INSTANCE.getEPackage(TelcoblocksPackage.eNS_URI);

		// Obtain or create and register package
		TelcoblocksPackageImpl theTelcoblocksPackage = (TelcoblocksPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof TelcoblocksPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new TelcoblocksPackageImpl());

		isInited = true;

		// Create package meta-data objects
		theTelcoblocksPackage.createPackageContents();

		// Initialize created meta-data
		theTelcoblocksPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theTelcoblocksPackage.freeze();

		return theTelcoblocksPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNodo() {
		return nodoEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEnlace() {
		return enlaceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnlace_Origen() {
		return (EReference)enlaceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnlace_Destino() {
		return (EReference)enlaceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEnlace_Comentario() {
		return (EAttribute)enlaceEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getRED() {
		return redEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_Terminales() {
		return (EReference)redEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_Enlaces() {
		return (EReference)redEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_Servidor_APP_SIP() {
		return (EReference)redEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_Servidor_VOIP() {
		return (EReference)redEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_Centralita_VOIP() {
		return (EReference)redEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getRED_MediaServer() {
		return (EReference)redEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNodoRED() {
		return nodoREDEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTerminal() {
		return terminalEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTerminal_ID() {
		return (EAttribute)terminalEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTelefono_VOIP() {
		return telefono_VOIPEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSoftPhone_VOIP() {
		return softPhone_VOIPEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getServidor() {
		return servidorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getServidor_IP() {
		return (EAttribute)servidorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getServidor_APP_SIP() {
		return servidor_APP_SIPEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getServidor_VOIP() {
		return servidor_VOIPEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCentralita_VOIP() {
		return centralita_VOIPEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Usercallerid() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Bindport() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Bindaddr() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Domain() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Videosupport() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Externrefresh() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCentralita_VOIP_Tipo() {
		return (EAttribute)centralita_VOIPEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMediaServer() {
		return mediaServerEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSERVICIOS() {
		return serviciosEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSERVICIOS_Nodos() {
		return (EReference)serviciosEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSERVICIOS_Enlaces() {
		return (EReference)serviciosEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNodoSERVICIOS() {
		return nodoSERVICIOSEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEvento() {
		return eventoEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIM() {
		return imEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getIM_Nombre() {
		return (EAttribute)imEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTelefono() {
		return telefonoEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTelefono_Nombre() {
		return (EAttribute)telefonoEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getWeb() {
		return webEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getWeb_Nombre() {
		return (EAttribute)webEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getServicio() {
		return servicioEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getServicioGen() {
		return servicioGenEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getServicioGen_Nombre() {
		return (EAttribute)servicioGenEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getLlamadas() {
		return llamadasEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getLlamadas_Nombre() {
		return (EAttribute)llamadasEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getClickToDial() {
		return clickToDialEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getClickToDial_Nombre() {
		return (EAttribute)clickToDialEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPersonalizacion() {
		return personalizacionEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPersonalizacion_Nombre() {
		return (EAttribute)personalizacionEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getBC() {
		return bcEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getFacturacion() {
		return facturacionEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getFacturacion_Nombre() {
		return (EAttribute)facturacionEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAnuncios() {
		return anunciosEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAnuncios_Nombre() {
		return (EAttribute)anunciosEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDesvio() {
		return desvioEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDesvio_Nombre() {
		return (EAttribute)desvioEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getYesNo() {
		return yesNoEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getTipoCentralita() {
		return tipoCentralitaEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TelcoblocksFactory getTelcoblocksFactory() {
		return (TelcoblocksFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		nodoEClass = createEClass(NODO);

		enlaceEClass = createEClass(ENLACE);
		createEReference(enlaceEClass, ENLACE__ORIGEN);
		createEReference(enlaceEClass, ENLACE__DESTINO);
		createEAttribute(enlaceEClass, ENLACE__COMENTARIO);

		redEClass = createEClass(RED);
		createEReference(redEClass, RED__TERMINALES);
		createEReference(redEClass, RED__ENLACES);
		createEReference(redEClass, RED__SERVIDOR_APP_SIP);
		createEReference(redEClass, RED__SERVIDOR_VOIP);
		createEReference(redEClass, RED__CENTRALITA_VOIP);
		createEReference(redEClass, RED__MEDIA_SERVER);

		nodoREDEClass = createEClass(NODO_RED);

		terminalEClass = createEClass(TERMINAL);
		createEAttribute(terminalEClass, TERMINAL__ID);

		telefono_VOIPEClass = createEClass(TELEFONO_VOIP);

		softPhone_VOIPEClass = createEClass(SOFT_PHONE_VOIP);

		servidorEClass = createEClass(SERVIDOR);
		createEAttribute(servidorEClass, SERVIDOR__IP);

		servidor_APP_SIPEClass = createEClass(SERVIDOR_APP_SIP);

		servidor_VOIPEClass = createEClass(SERVIDOR_VOIP);

		centralita_VOIPEClass = createEClass(CENTRALITA_VOIP);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__USERCALLERID);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__BINDPORT);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__BINDADDR);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__DOMAIN);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__VIDEOSUPPORT);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__EXTERNREFRESH);
		createEAttribute(centralita_VOIPEClass, CENTRALITA_VOIP__TIPO);

		mediaServerEClass = createEClass(MEDIA_SERVER);

		serviciosEClass = createEClass(SERVICIOS);
		createEReference(serviciosEClass, SERVICIOS__NODOS);
		createEReference(serviciosEClass, SERVICIOS__ENLACES);

		nodoSERVICIOSEClass = createEClass(NODO_SERVICIOS);

		eventoEClass = createEClass(EVENTO);

		imEClass = createEClass(IM);
		createEAttribute(imEClass, IM__NOMBRE);

		telefonoEClass = createEClass(TELEFONO);
		createEAttribute(telefonoEClass, TELEFONO__NOMBRE);

		webEClass = createEClass(WEB);
		createEAttribute(webEClass, WEB__NOMBRE);

		servicioEClass = createEClass(SERVICIO);

		servicioGenEClass = createEClass(SERVICIO_GEN);
		createEAttribute(servicioGenEClass, SERVICIO_GEN__NOMBRE);

		llamadasEClass = createEClass(LLAMADAS);
		createEAttribute(llamadasEClass, LLAMADAS__NOMBRE);

		clickToDialEClass = createEClass(CLICK_TO_DIAL);
		createEAttribute(clickToDialEClass, CLICK_TO_DIAL__NOMBRE);

		personalizacionEClass = createEClass(PERSONALIZACION);
		createEAttribute(personalizacionEClass, PERSONALIZACION__NOMBRE);

		bcEClass = createEClass(BC);

		facturacionEClass = createEClass(FACTURACION);
		createEAttribute(facturacionEClass, FACTURACION__NOMBRE);

		anunciosEClass = createEClass(ANUNCIOS);
		createEAttribute(anunciosEClass, ANUNCIOS__NOMBRE);

		desvioEClass = createEClass(DESVIO);
		createEAttribute(desvioEClass, DESVIO__NOMBRE);

		// Create enums
		yesNoEEnum = createEEnum(YES_NO);
		tipoCentralitaEEnum = createEEnum(TIPO_CENTRALITA);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		nodoREDEClass.getESuperTypes().add(this.getNodo());
		terminalEClass.getESuperTypes().add(this.getNodoRED());
		telefono_VOIPEClass.getESuperTypes().add(this.getTerminal());
		softPhone_VOIPEClass.getESuperTypes().add(this.getTerminal());
		servidorEClass.getESuperTypes().add(this.getNodoRED());
		servidor_APP_SIPEClass.getESuperTypes().add(this.getServidor());
		servidor_VOIPEClass.getESuperTypes().add(this.getServidor());
		centralita_VOIPEClass.getESuperTypes().add(this.getServidor());
		mediaServerEClass.getESuperTypes().add(this.getServidor());
		nodoSERVICIOSEClass.getESuperTypes().add(this.getNodo());
		eventoEClass.getESuperTypes().add(this.getNodoSERVICIOS());
		imEClass.getESuperTypes().add(this.getEvento());
		telefonoEClass.getESuperTypes().add(this.getEvento());
		webEClass.getESuperTypes().add(this.getEvento());
		servicioEClass.getESuperTypes().add(this.getNodoSERVICIOS());
		servicioGenEClass.getESuperTypes().add(this.getServicio());
		llamadasEClass.getESuperTypes().add(this.getServicio());
		clickToDialEClass.getESuperTypes().add(this.getServicio());
		personalizacionEClass.getESuperTypes().add(this.getServicio());
		bcEClass.getESuperTypes().add(this.getNodoSERVICIOS());
		facturacionEClass.getESuperTypes().add(this.getBC());
		anunciosEClass.getESuperTypes().add(this.getBC());
		desvioEClass.getESuperTypes().add(this.getBC());

		// Initialize classes and features; add operations and parameters
		initEClass(nodoEClass, Nodo.class, "Nodo", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(enlaceEClass, Enlace.class, "Enlace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEnlace_Origen(), this.getNodo(), null, "Origen", null, 1, 1, Enlace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEnlace_Destino(), this.getNodo(), null, "Destino", null, 1, 1, Enlace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getEnlace_Comentario(), ecorePackage.getEString(), "Comentario", "Comentario", 0, 1, Enlace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(redEClass, org.germinus.telcoblocks.RED.class, "RED", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getRED_Terminales(), this.getTerminal(), null, "Terminales", null, 0, -1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getRED_Enlaces(), this.getEnlace(), null, "Enlaces", null, 0, -1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getRED_Servidor_APP_SIP(), this.getServidor_APP_SIP(), null, "Servidor_APP_SIP", null, 1, 1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getRED_Servidor_VOIP(), this.getServidor_VOIP(), null, "Servidor_VOIP", null, 1, 1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getRED_Centralita_VOIP(), this.getCentralita_VOIP(), null, "Centralita_VOIP", null, 1, 1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getRED_MediaServer(), this.getMediaServer(), null, "MediaServer", null, 1, 1, org.germinus.telcoblocks.RED.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(nodoREDEClass, NodoRED.class, "NodoRED", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(terminalEClass, Terminal.class, "Terminal", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTerminal_ID(), ecorePackage.getEString(), "ID", "ID", 1, 1, Terminal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(telefono_VOIPEClass, Telefono_VOIP.class, "Telefono_VOIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(softPhone_VOIPEClass, SoftPhone_VOIP.class, "SoftPhone_VOIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(servidorEClass, Servidor.class, "Servidor", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getServidor_IP(), ecorePackage.getEString(), "IP", "0.0.0.0", 1, 1, Servidor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(servidor_APP_SIPEClass, Servidor_APP_SIP.class, "Servidor_APP_SIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(servidor_VOIPEClass, Servidor_VOIP.class, "Servidor_VOIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(centralita_VOIPEClass, Centralita_VOIP.class, "Centralita_VOIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCentralita_VOIP_Usercallerid(), this.getYesNo(), "usercallerid", "yes", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Bindport(), ecorePackage.getEInt(), "bindport", "5060", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Bindaddr(), ecorePackage.getEString(), "bindaddr", "0.0.0.0", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Domain(), ecorePackage.getEString(), "domain", "gsi.dit.upm.es", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Videosupport(), this.getYesNo(), "videosupport", "yes", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Externrefresh(), ecorePackage.getEInt(), "externrefresh", "10", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCentralita_VOIP_Tipo(), this.getTipoCentralita(), "tipo", "ASTERISK", 0, 1, Centralita_VOIP.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(mediaServerEClass, MediaServer.class, "MediaServer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(serviciosEClass, org.germinus.telcoblocks.SERVICIOS.class, "SERVICIOS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getSERVICIOS_Nodos(), this.getNodoSERVICIOS(), null, "Nodos", null, 0, -1, org.germinus.telcoblocks.SERVICIOS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getSERVICIOS_Enlaces(), this.getEnlace(), null, "Enlaces", null, 0, -1, org.germinus.telcoblocks.SERVICIOS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(nodoSERVICIOSEClass, NodoSERVICIOS.class, "NodoSERVICIOS", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(eventoEClass, Evento.class, "Evento", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(imEClass, org.germinus.telcoblocks.IM.class, "IM", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getIM_Nombre(), ecorePackage.getEString(), "Nombre", "IM", 1, 1, org.germinus.telcoblocks.IM.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(telefonoEClass, Telefono.class, "Telefono", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTelefono_Nombre(), ecorePackage.getEString(), "Nombre", "Telefono", 1, 1, Telefono.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(webEClass, Web.class, "Web", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getWeb_Nombre(), ecorePackage.getEString(), "Nombre", "Web", 1, 1, Web.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(servicioEClass, Servicio.class, "Servicio", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(servicioGenEClass, ServicioGen.class, "ServicioGen", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getServicioGen_Nombre(), ecorePackage.getEString(), "Nombre", "Servicio Gen\u00e9rico", 1, 1, ServicioGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(llamadasEClass, Llamadas.class, "Llamadas", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getLlamadas_Nombre(), ecorePackage.getEString(), "Nombre", "Llamadas", 1, 1, Llamadas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(clickToDialEClass, ClickToDial.class, "ClickToDial", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getClickToDial_Nombre(), ecorePackage.getEString(), "Nombre", "Click to dial", 1, 1, ClickToDial.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(personalizacionEClass, Personalizacion.class, "Personalizacion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPersonalizacion_Nombre(), ecorePackage.getEString(), "Nombre", "Personalizaci\u00f3n", 1, 1, Personalizacion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(bcEClass, org.germinus.telcoblocks.BC.class, "BC", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(facturacionEClass, Facturacion.class, "Facturacion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getFacturacion_Nombre(), ecorePackage.getEString(), "Nombre", "Facturaci\u00f3n", 1, 1, Facturacion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(anunciosEClass, Anuncios.class, "Anuncios", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAnuncios_Nombre(), ecorePackage.getEString(), "Nombre", "Anuncios", 1, 1, Anuncios.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(desvioEClass, Desvio.class, "Desvio", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDesvio_Nombre(), ecorePackage.getEString(), "Nombre", "Desv\u00edo", 1, 1, Desvio.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		// Initialize enums and add enum literals
		initEEnum(yesNoEEnum, YesNo.class, "YesNo");
		addEEnumLiteral(yesNoEEnum, YesNo.YES);
		addEEnumLiteral(yesNoEEnum, YesNo.NO);

		initEEnum(tipoCentralitaEEnum, TipoCentralita.class, "TipoCentralita");
		addEEnumLiteral(tipoCentralitaEEnum, TipoCentralita.ASTERISK);

		// Create resource
		createResource(eNS_URI);
	}

} //TelcoblocksPackageImpl
